package com.cnoja.jmsncn.inf;

import java.io.IOException;

import com.cnoja.jmsncn.command.event.CommandEvent;
import com.cnoja.jmsncn.kernel.exceptions.CommandException;

public interface ICommander {
	void execute(ICommand command) throws CommandException;

	public void start() throws IOException;

	public void stop() throws IOException;

	void setMessenger(IMessenger messenger);

	IMessenger getMessenger();

	void addCommandEventListener(ICommandEventListener listener);

	void removeCommandEventListener(ICommandEventListener listener);

	void fireCommanderEvent(CommandEvent event);

}
